#Forelesning 2, 13 jan 2017 - intro til R 
#Andre standardfunksjoner
høyde<-c(1.75,1.80,1.65,1.90,1.74,1.91)
vekt<-c(60,72,57,90,95,72)
plot(høyde,vekt,pch=18,col="red")
bmi<-vekt/høyde^2

#Hypotesetest - H_0: mu=22.5
t.test(bmi,alternative="two.sided",mu=22.5) #Tolk utskrift

#Lineær regresjon
temp<-lm(vekt~høyde)
summary(temp)

abline(-46.34,67.35) #Legger inn en linje i plottet med skjæringspunk a=-46 og gradient b=67
abline(temp)

#Hvordan er en person med bmi=22.5
hh<-seq(1.50,2,by=0.01)
vv<-22.5*hh^2
lines(hh,vv,lty=2)

#Tekst
bmi.navn<-c("Anne","Bent","C","D","E","F")


##Funksjoner for å lage vektorer - ofte nyttige i forbindelse med grafiske figurer
seq(from=0,to=100,by=5) #Lager en sekvens med steglengde 5
rep(NA,10)			#NA = missing value; repeterer første argument (NA) 10 ganger
1:100

## matriser, litt lineær-algebra, alderstrukturert modell
#Lager en såkalt Leslie-matrise for alderstrukturerte populasjoner
A <- matrix(c(0,2,3,2,0.1,0,0,0,0,0.4,0,0,0,0,0.4,0),ncol=4,nrow=4,byrow=T)

#Regner ut egenverdier og egenvektorer for matrisa
eigen(A)$val[1] 			#første egenverdi (populasjonsens vekstrate)
v <- eigen(A)$vectors[,1] 	#første egenvektor
v <- v/sum(v) 			#normaliserer
plot(1:4,v,type="h") 		#plot av den stabile aldersfordelingen (første egenvektor)

A[1,] 				#Hakeparentes gir mulighet til å velge deler av objektet - 
#her første rad av matrisa som gir populasjonens fekunditet 
A[1,] <- 4*A[1,] 			#firedoble fekunditetene
N <- c(10,0,0,0) 			#antall i aldersklasse ved t=0
N <- A%*%N; N 			#Antall neste år...


## Innlesing av et større datasett fra fil/web
stud <- read.table("http://www.math.ntnu.no/~jarlet/ST1301-2007v/hoyde.dat",header=T)

names(stud)		#Får navnene på kolonnene (variablene)

stud[1:10,]		#Inspiserer datasettet - ser bare på de 10 første radene for å se på datastrukturen

View(stud) #Får opp hele datasettet

pairs(stud[,1:4])		#Plotter variablene parvis mot hverandre

lapply(stud,mean)		#Sjekk hva lapply gjør ved å skrive ?lapply
lapply(stud,sd)

summary(stud) #Gir summary statistics for datasettet

stud$kjonn 			# $-tegnet angir at vi velger variabel med navn kjonn

stud[stud$kjonn=="M",]	#Velger kun de radene (studentene) med kjonn = M

attach(stud) 		# gjør variablene i stud data.frame'en stud tilgjengelige som vektorer

plot(mor,avkom,col=kjonn)
plot(far,avkom,col=kjonn)
midparent <- (mor+far)/2
plot(midparent,avkom,col=kjonn)	#Noen outliers, dvs. observasjoner som ser merkelig ut? Hvis ja, prøv analysen både med og uten. 
lm(avkom ~ midparent)	#Modell for avkom fra midparent
t.test(avkom[kjonn=="M"],avkom[kjonn=="K"])	#Toutvalgs t-test - hva er det denne tester? Dvs. sett opp hypotesene
t.test(far[kjonn=="M"],far[kjonn=="K"])		#Og hva tester denne? 
plot(far,mor)
cor.test(far,mor,alternative="greater")		#Tester om korrelasjonen mellom mødre og fedres høyder er større enn 0
ls()
detach(stud)

install.packages("sudoku")
library(sudoku) 		# matriser kan brukes til så mangt... Sjekk i boka hvordan dere henter opp R-packages
x <- fetchSudokuUK() 
printSudoku(x)
solveSudoku(x)
